package com.lonely.fx.bind;

import javafx.application.Application;
import javafx.beans.value.ChangeListener;
import javafx.beans.value.ObservableValue;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.HBox;
import javafx.stage.Stage;

/**
 * @date: 2022-07-24 09:55
 * @author: ztkj-hzb
 * @description:
 **/
public class 单向绑定案例 extends Application {

    public static void main(String[] args) {
        launch(args);
    }

    /**
     *  设置按钮的宽高跟父容器的宽高绑定
     */
    @Override
    public void start(Stage primaryStage) throws Exception {

        HBox hBox = new HBox();
        Button button = new Button("Button");
        hBox.getChildren().add(button);


        //第一种方式
        /*hBox.widthProperty().addListener(new ChangeListener<Number>() {
            @Override
            public void changed(ObservableValue<? extends Number> observable, Number oldValue, Number newValue) {
                System.out.println(newValue);
                button.setPrefWidth(newValue.doubleValue());
            }
        });*/


        //第二种方式，使用单向绑定
        button.prefWidthProperty().bind(hBox.widthProperty());

        primaryStage.setScene(new Scene(hBox));
        primaryStage.setWidth(600);
        primaryStage.setHeight(500);
        primaryStage.show();
    }
}
